Paroxysm Quake Mod - Quiver Definitions Explained

Due to some minor/major adjustments to existing Quake entities, it is recommended that you use only ONE def file while running Quiver (remove the Quake definitions when making Paroxysm maps and vice-versa)

Many common defs contain changes, but they are pretty straight forward  - like more/different light styles and sounds (you may not even notice them at all). I don't think any explanation is necessary for those.

The following entities are Paroxysm-specific. Some of these may seem strange for a Deathmatch mod - for good reason - Paroxysm started out as a single player conversion and the bulk of the new entities were created to support that type of experience. They've been left in for the simple fact that it was easier to leave them alone than to weed them out.

The rotating object notes were swiped from Ritual's readme http://www.ritual.com

This is a preliminary release, there WILL be more options available in the future. Some items are including in the defs but are not yet fully implemented in the game (Quad, Invisibility and Invuln


#######################################
Weapons are pretty straight forward:

Combo Gun (Double Barreled Shotgun)
Plasma Gun (Nailgun / Thunderbolt)
Nailgun (Super Nailgun)
Grenade Launcher
Anihilator (Rocket Launcher)

Old weapons are replaced by there respective counterparts in existing maps.

For more weapon info visit the website http://www.planetquake.com/paroxysm/
#######################################


#######################################
Special Structures / Breakable Object (exploding_wall)

This turns any brush into a breakable entity.
Options:

Health - how much damage is needed for the object to break
NOTE: Damage is counted at impact and is not accumulated - so you can have a wall that will crumble when hit by a grenade but not break when shot with a shotgun.

Gib Damage (dmg) - Set this higher than 0 to cause rubble to inflict damage

Spawn Flags / SPAWN_GLASS - Changes the rubble type and sound to a glass explosion

Spawn Flags / SPAWN_METAL - Changes the rubble type and sound to a metal explosion

Spawn Flags / SPAWN_WOOD - Changes the rubble type and sound to a wood explosion

The default gib type is a grey stone/concrete.
#######################################


#######################################
Special Structures / Armour Regeneration Station (regen_station)

This creates a regen station trigger that players stand in to gain armour points. There are still 3 types of armour but now the amount of armour is directly proportional to the type (quality) of the armour.

Here's a breakdown:
1 - 50 points is blue (level 1) armour
51 - 150 points is yellow (level 2) armour
151 - 255 points is red (level 3) armour

The original armour entities are still supported and are quicker to set up than a regen trigger but have fewer options.

Options:

Max Amount (armregen) - a number between 50 - 255 (defaults to 50 if below it) sets the maximum amount of armour points a player can gain while touching this trigger.

Speed (rdelay) - sets the delay (in seconds) between each point increment.
NOTE: 0 is a valid speed but audio glitches may result. Gets VERY slow after values above 0.15 or so.
#######################################

--------------------------------------------------------------------------------
Rotating Structures - This section is taken from the Scourge of Armagon (Mission Pack 1) - See the 'Guide to Rotating objects for more info)

***********
info_rotate (0 0.5 0) (-4 -4 -4) (4 4 4)
***********

   Used as the point of rotation for rotatable objects.

******************
func_rotate_entity (0 .5 .8) (-8 -8 -8) (8 8 8) TOGGLE START_ON
******************

   Creates an entity that continually rotates.  Can be toggled on
   and off if targeted.

   TOGGLE = allows the rotation to be toggled on/off

   START_ON = wether the entity is spinning when spawned.  If TOGGLE is
   0, entity can be turned on, but not off.

   If "deathtype" is set with a string, this is the message that will
   appear when a player is killed by the train.

   "rotate" is the rate to rotate.

   "target" is the center of rotation.

   "speed"  is how long the entity takes to go from standing still to
   full speed and vice-versa.

***********
path_rotate (0.5 0.3 0) (-8 -8 -8) (8 8 8)
            ROTATION ANGLES STOP NO_ROTATE DAMAGE MOVETIME SET_DAMAGE
***********

   Path for rotate_train.

   ROTATION tells train to rotate at rate specified by "rotate".  Use
   '0 0 0' to stop rotation.

   ANGLES tells train to rotate to the angles specified by "angles"
   while traveling to this path_rotate.  Use values < 0 or > 360 to
   guarantee that it turns in a certain direction.  Having this flag
   set automatically clears any rotation.


   STOP tells the train to stop and wait to be retriggered.

   NO_ROTATE tells the train to stop rotating when waiting to be
   triggered.

   DAMAGE tells the train to cause damage based on "dmg".

   MOVETIME tells the train to interpret "speed" as the length of time
   to take moving from one corner to another.

   SET_DAMAGE tells the train to set all targets damage to "dmg"

   "noise" contains the name of the sound to play when train stops.

   "noise1" contains the name of the sound to play when train moves.

   "event" is a target to trigger when train arrives at path_rotate.

*****************
func_rotate_train (0 .5 .8) (-8 -8 -8) (8 8 8)
*****************

   In path_rotate, set speed to be the new speed of the train after it
   reaches the path change.  If speed is -1, the train will warp
   directly to the next path change after the specified wait time.  If
   MOVETIME is set on the path_rotate, the train to interprets "speed"
   as the length of time to take moving from one corner to another.

   "noise" contains the name of the sound to play when train stops.

   "noise1" contains the name of the sound to play when train moves.

   Both "noise" and "noise1" defaults depend upon "sounds" variable and
   can be overridden by the "noise" and "noise1" variable in path_rotate.

   Also in path_rotate, if STOP is set, the train will wait until it is
   retriggered before moving on to the next goal.

   Trains are moving platforms that players can ride.

   "path" specifies the first path_rotate and is the starting position.
   If the train is the target of a button or trigger, it will not begin
   moving until activated.  The func_rotate_train entity is the center
   of rotation of all objects targeted by it.

   If "deathtype" is set with a string, this is the message that will
   appear when a player is killed by the train.

   speed   default 100

   dmg      default  0

   sounds
   1) ratchet metal

*************
rotate_object (0 .5 .8) ?
*************

   This defines an object to be rotated.  Used as the target of
   func_rotate_door.

****************
func_rotate_door (0 .5 .8) (-8 -8 -8) (8 8 8) STAYOPEN
****************

   Creates a door that rotates between two positions around a point of
   rotation each time it's triggered.

   STAYOPEN tells the door to reopen after closing.  This prevents a
   trigger-once door from closing again when it's blocked.

   "dmg" specifies the damage to cause when blocked.  Defaults to 2.
   Negative numbers indicate no damage.

   "speed" specifies how the time it takes to rotate

   "sounds"
   1) medieval (default)
   2) metal
   3) base
   
*************
func_movewall (0 .5 .8) ? VISIBLE TOUCH
*************

   Used to emulate collision on rotating objects.

   VISIBLE causes brush to be displayed.

   TOUCH specifies whether to cause damage when touched by player.

   NONBLOCKING makes the brush non-solid.  This is useless if VISIBLE is
   not set.

   "dmg" specifies the damage to cause when touched or blocked.
--------------------------------------------------------------------------------

#######################################
Ambient FX / Earthquake (func_earthquake)
Must be triggered, causes an earthquake and triggers it's targets.

dmg - the duration of the earthquake. Default is 0.8 seconds.
#######################################


#######################################
Ambient FX / Coloured Light (colour_light)

colour_light is a small hack to try and simulate coloured lighting. It does this by calling the built-in v_cshift function This can be used for 'atmospheric' effects like outdoor haze and darkness. This function is overriden by Quake when under liquids and by the background flash when an item is picked up

This effect works poorly in small increments in GL Quake. No colour will be noticeable until about an intensity of about 5 (depending on the colour) and some colour/intensity combinations result in ugly banding. It's best to test colour levels in the console before applying them in your map.

These are strange entities, the only way to turn them on or off is to touch them, BUT you can also target them to either enable or disable them - it's best to totally encompass a room with the entity so saved games will restart correctly - this works when applied in a map (trust me) - experiment!

ONLY ONE OPTION:

colourvalue - this is the only parameter, must be in this format;

v_cshift R G B I\n

where R is Red (0 - 255), G is Green (0 - 255), B is Rlue (0 - 255), and I is Intensity (0 - 255)

NOTE: This is a hack in every sense of the word. Used sparingly it can add some nice effects. The string must be exactly as shown (including the 'v_cshift' and the line feed at the end)
#######################################


#######################################
Ambient FX / Moving Light (dyn_light)

This works a lot like the func_train entity only instead of a solid bsp model moving, it's a light. (Actually it's a null sprite with a light effect attached to it).

The only new option is:

Light Style (dynlight_style)
Quake has only three dynamic light styles:
1 - Dimlight
2 - Brightlight
3 - Brightfield (Brightlight with 'shimmering' particles)

Dynamic Lights can also be triggered, They currently only start turned off.

This effect is VERY different in software and GL Quake. In software rendering, you can effectively light a room (or an entire level) using dynamic lights. GL Quake renders these as light 'glows' that DO NOT EMIT LIGHT (they do not affect bsp models) unless the command 'GL_FLASHBLEND 0' is entered in the console. This command is activated when 'Dark mode' is enabled but requires much more CPU power and lower end systems may experience a drop in framerate.
#######################################


#######################################
Ambient FX / Water Drip (a_drip)

Creates a drip. Can be used as a slow leak or full fledged down pour (in conjunction with a Selective ambient sound entity)
Options:

Delay Between drips (drip_freq) - controls the delay between drips in seconds. 

drip_snd controls the type of sound produced.
1 = no sound - use this to silence drips in a rain group (set a Selective Ambient Sound entiy to "misc/rain.wav" to finish this effect.)
2 = produces a random drip sound on hitting something

Drips can also be targeted so you can do some cool stuff like break a skylight and have the rain start pouring through.
#######################################


#######################################
Ambient FX / Spark (e_spark)

Creates a spark.
Options:

Delay between sparks (spark_freq) - controls the delay between sparks in seconds NOTE: spark_freq is then randomized slightly to give a better effect. Sparks are emited horizontally in a 360 radius around the origin of the entity - you must be careful when placing these so that a sparking object on one side of a wall doesn't emit sparks on the other side.

Sparks can be triggered.
#######################################


#######################################
Audio / Custom Sound (cust_sound)

This is the most involved of the new entities. It creates a sound entity with a ton of options:

Loop (snd_loop) - delay in seconds before playing sound again (use sound length for constantly looping sounds)

Repeat (snd_rep) - number of times to play the sound (-2 is infinite loop)

Path to Sound (the_snd) - directory path to the sound - example: "misc/mysound.wav" NOTE: "sound/" is NOT needed

Volume (snd_volume) - sets the sounds overall volume (typically values of 0.5 to 1) default is 1

Attenuation (snd_attn) - sets the sound's attenuation, basically how close you have to be to the source before hearing the sound (defaults to ATTN_NORM (1))

Random (snd_rand) - random seed, this number is multiplied by random() and added to loop (default 0 is no random)

Start... (strt_onoff) - 0 = initially on, 1 = initially off

targetname - sounds can be triggered by using a targetname.

Spawn Flags / TOGGLE_SND - determines if sounds can be toggled on and off.

BUGS
1. Quake won't start playing these sounds on the first frame - (Unless you precache every possible sound
at world_spawn)

HACKY FIX - If you need a sound to play right away;
Position a trigger in such a way that it is touched when the player enters the map - NOT touching the player initially (doesn't work on frame 1 remember?). Try making a trigger 4 units tall and place info_player_start just above it. Not pretty, but it does the trick - Don't forget to set strt_onoff to 1 (initially off) for this to work (or else it will turn of on the second frame)

2. When Quake no longer 'hears' or more arcurately - 'sees' the sound, it kills it until it comes into view again. This causes the sound to stop playing and resume at the NEXT loop point when it is in view, so for sounds that must be looped constantly, I would reccomend using the ambient_sound entity (below).
#######################################


#######################################
Audio / Selective Ambient Sound (ambient_sound)

Lets you add ANY ambient sounds to your level. ONLY WORKS WITH LOOPED WAV FILES
NOTE: To my knowledge you can't make these with existing Mac sound editors (you can make looping wavs, just not ones Quake will loop). CoolEdit 1.5 (for Windows) is the only editor that can create these looping wavs (to my knowledge).

Options:

Path to Sound (the_snd) - directory path to the sound - example: "misc/mysound.wav" NOTE: "sound/" is NOT needed

Volume (snd_volume) - sets the sounds overall volume (typically values of 0.5 to 1) default is 1

Attenuation (snd_attn) - sets the sound's attenuation, basically how close you have to be to the source before hearing the sound (defaults to ATTN_NORM (1))

targetname - sounds can be triggered

There are only a few extra looped ambient sounds in this release:
ambience/hrone1.wav
ambience/wpump1.wav
misc/rain.wav
#######################################


That's it for now.
Get the latest Paroxysm info at http://www.planetquake.com/paroxysm/

Send bug reports/ommissions to: pox@planetquake.com